Modern computer or other communications networks, typically involve a primary station or device, such as a file server, a personal computer, a computer workstation, a mainframe computer, a supercomputer, or any other type of computer, coupled or connected through a communications channel to a larger number of secondary stations or devices, such as data terminals, personal computers, workstations, or other computers. The communications channel may be any type or kind of transmission media, such as fiber optic cable, television cable or other coaxial cable, digital T1 or ISDN lines, twisted pair telephone lines, etc. The communication between the primary and secondary devices is typically bi-directional, with the primary station capable of transmitting information to and receiving information from each secondary station, and with each secondary station capable of transmitting information to and receiving information from the primary station. Secondary stations usually do not communicate directly with each other, but may communicate indirectly with each other through the primary station.
In many network environments, however, the network typically shares the transmission medium among several, many or all of the secondary stations or devices, rather than having a specific and dedicated transmission medium to each such individual secondary station or device. In such network environments in which such multiple secondary stations or devices share access to a transmission medium, a problem may be created in the event that more than one secondary station attempts to transmit information to the primary station during the same period of time. Accordingly, given the possibility that more than one device (primary or secondary) may be transmitting information on the medium simultaneously, there may then be the problem that such transmitted data collides or interferes with the other simultaneously transmitted data. Such "data collisions" typically result in the data of all of the transmitting stations becoming corrupted and useless.
Currently, in the prior art, there are two main types or categories of solutions to this potential data collision problem (and corresponding data corruption problem). The first, referred to as round robin access, involves a set of procedures wherein devices are allowed access to the medium in a sequential fashion, with no more than one device being permitted access to the medium at any one time. Round robin access, such as token ring access, may involve the passing of a token between peer stations. Only the station that has the token is permitted to transmit on the medium, thereby avoiding data collisions.
Another approach, referred to as polling, involves a single master or primary station controlling the access of slave, or secondary stations, to the transmission medium. The primary station controls the access of the secondary stations to the network medium by transmitting polls addressed to individual secondary stations in a sequential fashion. A secondary station, such as the first secondary station, is permitted to transmit on the shared medium only upon receiving a poll containing its specific, unique address or other means of identification. Upon completion of transmission, the primary station then transmits another poll to the second or next secondary station, and repeats the process until all secondary stations have been polled. The polling process then iterates or begins again with a poll to the first secondary station. By limiting transmission access to only the specific secondary station polled, data collisions may be avoided.
A second prior art solution, referred to as contention access, involves multiple secondary stations contending for the shared medium, often in an unordered and possibly random fashion. This contention access approach, however, assumes that data collisions may occur. Accordingly, protocols which provide shared access to a transmission medium using contention access also usually provide means for detecting that a collision has occurred, and means for resolving the transmission order among the contending secondary stations. These contention access protocols also include procedures and algorithms for retransmitting data subsequent to a collision, usually in such a manner as to reduce the likelihood of additional collisions.
A variety of such round robin and contention protocols, with applications to various network configurations or topographies, are discussed in A. Tanenbaum, Computer Networks (Prentice-Hall, Inc., Englewood Cliffs, N.J., 2d Ed. 1989).
A comparision of the performance of these two solutions indicates that contention access protocols generally perform well only under "lightly loaded" conditions, i.e., the devices sharing the medium have data available for transmission only infrequently, so that an excessive number of devices are not simultaneously contending for data transmission. As loading increases, however, the performance of these protocols may degrade due to the increased number of collisions. The time required for data transmission may increase significantly, as each collision further requires data retransmission, which may also result in additional collisions. As the data transmission load may continue to increase, networks employing contention access may simply cease to function, as the increased contention creates collisions indefinitely.
Round robin protocols, on the other hand, comparatively do not perform as well as contention protocols under lightly loaded conditions. Under conditions of a light data transmission load, these round robin protocols effectiviely waste significant transmission time due to the amount of time spent polling or passing tokens to stations which do not have any data available for transmission or which are unresponsive altogether. Protocols employing a polling discipline, by transmitting polls addressed to individual secondary stations in a sequential fashion, suffer performance degradation when a significant number of the secondary stations are unresponsive. The performance degradation comes about due to the time spent polling and waiting for responses from secondary stations which are not able to respond. Typically unresponsive secondary stations continue to be polled because the primary station has no knowledge of when an unresponsive secondary station may become able to respond. These protocols, however, may provide superior performance, compared to contention access protocols, under heavily loaded conditions, providing a sequential opportunity for each station to transmit without interfering and disabling collisions.
A need remains, therefore, for a single network communications protocol to have increased information transmission efficiency, such as reducing the time for and any time delays associated with information transmission, under both lightly loaded and heavily loaded conditions. In addition, needs continue to exist for such a single protocol to dynamically respond to potentially changing load conditions, from light to heavy and vice-versa, and to accomodate various user demand levels, from few to many users at any given time. A protocol should also meet these needs efficiently, by increasing transmission channel availability and decreasing the time required for effective information transmission.